package modeloCarmenSanDiego;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import modeloCarmenSanDiego.caracteristicas.*;

public class Sospechoso {
	
 	protected String nombre;
	protected Sexo sexo; 
	protected Hobby hobby;
	protected Cabello cabello;
	protected Senia senia;
	protected Vehiculo vehiculo;
	
	public Sospechoso(String nombre, Sexo sexo, Hobby hobby, Cabello cabello, Senia senia, Vehiculo vehiculo){
		this.nombre = nombre;
		this.sexo = sexo;
		this.hobby = hobby;
		this.cabello = cabello;
		this.senia = senia;
		this.vehiculo = vehiculo;
	}
	
	public String getNombre(){
		return nombre;
	}
	
	public Sexo getSexo(){
		return sexo;
	}
	
	public Hobby getHobby(){
		return hobby;
	}
	
	public Cabello getCabello(){
		return cabello;
	}
	
	public Senia getSenia(){
		return senia;
	}
	
	public Vehiculo getVehiculo(){
		return vehiculo;
	}

	public boolean coincideEnDescripcionCon(Sospechoso sospechosoBuscado) {
		boolean resultado = true;
		if(sospechosoBuscado.getSexo() != null)
			resultado = resultado && (sospechosoBuscado.getSexo() == this.sexo);
		if(sospechosoBuscado.getHobby() != null)
			resultado = resultado && (sospechosoBuscado.getHobby() == this.hobby);
		if(sospechosoBuscado.getCabello() != null)
			resultado = resultado && (sospechosoBuscado.getCabello() == this.cabello);
		if(sospechosoBuscado.getSenia() != null)
			resultado = resultado && (sospechosoBuscado.getSenia() == this.senia);
		if(sospechosoBuscado.getVehiculo() != null)
			resultado = resultado && (sospechosoBuscado.getVehiculo() == this.vehiculo);
		return resultado;	
	}

	public String getCaracteristicaAlAzar() {
		List<String> caracteristicas = new ArrayList<String>();
		caracteristicas.add(this.hobby.getStringDePista());
		caracteristicas.add(this.cabello.getStringDePista());
		caracteristicas.add(this.senia.getStringDePista());
		caracteristicas.add(this.vehiculo.getStringDePista());
		Collections.shuffle(caracteristicas);
		return caracteristicas.get(1);
	}
}
